package cn.com.shadowless.xinning.model.order;

import java.math.BigDecimal;
import java.util.List;

import lombok.Data;

/**
 * The type Procure order info.
 *
 * @author sHadowLess
 */
@Data
public class ProcureOrderInfo {

    private DataDTO data;

    @Data
    public static class DataDTO {
        private List<RelationListDTO> relationList;
        private List<ItemListDTO> itemList;
        private String id;
        private String departmentId;
        private String departmentName;
        private String purchaser;
        private String purchaserName;
        private PurchaserObjectDTO purchaserObject;
        private String createTime;
        private String createTimeStr;
        private String createUser;
        private String createUserName;
        private CreateUserObjectDTO createUserObject;
        private Object finishTime;
        private String finishTimeStr;
        private BigDecimal totalCost;
        private String totalCostStr;
        private String partnerId;
        private String partnerName;
        private Object progressStatus;
        private Object progressInfo;
        private String enquiryInfo;
        private boolean isAdvance;
        private Object contractId;
        private String remark;
        private String status;

        @Data
        public static class PurchaserObjectDTO {
            private List<?> departPositionList;
            private String id;
            private String account;
            private String passWord;
            private String userName;
            private boolean gender;
            private String genderStr;
            private String telephone;
            private String birthday;
            private String birthdayStr;
            private String identityCard;
            private Object nativePlace;
            private Object liaisons;
            private Object liaisonsTel;
            private String education;
            private Object educationStr;
            private Object school;
            private Object major;
            private Object workTime;
            private String workTimeStr;
            private Object email;
            private String inDate;
            private String inDateStr;
            private Object outDate;
            private String outDateStr;
            private Object startDate;
            private String startDateStr;
            private Object endDate;
            private String endDateStr;
            private String onJobStatus;
            private String onJobStatusStr;
            private Object createUser;
            private Object createTime;
            private Object modifyUser;
            private Object modifyTime;
            private boolean isActive;
            private String departmentId;
            private String departmentName;
            private String positionId;
            private String positionName;
            private Object budgetDepartmentId;
            private boolean isManager;
            private String isManagerStr;
            private boolean isMain;
            private String isMainStr;

        }

        @Data
        public static class CreateUserObjectDTO {
            private List<?> departPositionList;
            private String id;
            private String account;
            private String passWord;
            private String userName;
            private boolean gender;
            private String genderStr;
            private String telephone;
            private String birthday;
            private String birthdayStr;
            private String identityCard;
            private Object nativePlace;
            private Object liaisons;
            private Object liaisonsTel;
            private String education;
            private Object educationStr;
            private Object school;
            private Object major;
            private Object workTime;
            private String workTimeStr;
            private Object email;
            private String inDate;
            private String inDateStr;
            private Object outDate;
            private String outDateStr;
            private Object startDate;
            private String startDateStr;
            private Object endDate;
            private String endDateStr;
            private String onJobStatus;
            private String onJobStatusStr;
            private Object createUser;
            private Object createTime;
            private Object modifyUser;
            private Object modifyTime;
            private boolean isActive;
            private String departmentId;
            private String departmentName;
            private String positionId;
            private String positionName;
            private Object budgetDepartmentId;
            private boolean isManager;
            private String isManagerStr;
            private boolean isMain;
            private String isMainStr;

        }

        @Data
        public static class RelationListDTO {
            private String id;
            private String purchaserOrderId;
            private String requiredOrderId;
            private String publicResourceItemId;
            private BigDecimal purchaseNum;
            private Object publicResourceItemName;
            private Object brand;
            private Object size;
            private Object unit;
            private BigDecimal price;
            private Object departmentId;
            private Object departmentName;
            private Object applicant;
            private Object applicantName;
            private Object resourceId;
            private Object resourceName;
            private BigDecimal num;
            private Object remark;
            private BigDecimal totalPrice;

        }

        @Data
        public static class ItemListDTO {
            private String id;
            private String parentId;
            private String publicResourceItemId;
            private String publicResourceItemName;
            private String publicResourceId;
            private String publicResourceName;
            private String brand;
            private String size;
            private String unit;
            private PublicResourceItemObjectDTO publicResourceItemObject;
            private BigDecimal num;
            private BigDecimal price;
            private BigDecimal totalPrice;
            private BigDecimal realNum;
            private Object remark;


            @Data
            public static class PublicResourceItemObjectDTO {
                private String id;
                private String publicResourceId;
                private String parentName;
                private String name;
                private BigDecimal price;
                private Object category;
                private String brand;
                private String size;
                private String unit;
                private String remark;
                private boolean isNeedRetrieve;
                private String isNeedRetrieveStr;

            }
        }
    }
}
